package ztime

import "time"

// Now 获取当前时
func Now() time.Time {
	return time.Now()
}

// Unix 获取当前秒时间戳
func Unix() int64 {
	return Now().Unix()
}

// UnixMilli 获取当前毫秒时间戳
func UnixMilli() int64 {
	return time.Now().UnixMilli()
}

// SecToTime Unix转time
func SecToTime(sec int64) time.Time {
	return time.Unix(sec, 0)
}

// ToTime 标准字符串转UTC时间 "2006-01-02 15:04:05"
func ToTime(dt string) time.Time {
	if t, err := time.Parse(time.DateTime, dt); err == nil {
		return t
	} else {
		return time.Now()
	}
}

// ToTimeLocal 标准字符串转本地时间 "2006-01-02 15:04:05"
func ToTimeLocal(dt string) time.Time {
	if t, err := time.ParseInLocation(time.DateTime, dt, time.Local); err == nil {
		return t
	} else {
		return time.Now()
	}
}

// ToString 时间转标准字符串 "2006-01-02 15:04:05"
func ToString(dt time.Time) string {
	return dt.Format(time.DateTime)
}

// DayStart 这天开始的时间
func DayStart(dt time.Time) time.Time {
	return time.Date(dt.Year(), dt.Month(), dt.Day(), 0, 0, 0, 0, dt.Location())
}

// MonthStart 这月开始的时间
func MonthStart(t time.Time) time.Time {
	return time.Date(t.Year(), t.Month(), 1, 0, 0, 0, 0, t.Location())
}
